﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static float a;
        static float b;
        static float sum=1000;
        static void Main(string[] args)
        {

            Task1();
            //第二题：
            //编写一个程序，用以接收用户输入的两个浮点型的数值，一个值表示用户想要存放在银行账户中的余额，
            //另一个值表示用户想要从银行账户中提取的金额。

            //实现存取款功能，
            //用户功能选择：1、存款，2、取款
            //取款时：

            //当用户想要提取的金额大于余额时，请手动抛出一个ArgumentOutOfRangeException
            //参数超出范围的异常，异常信息可以写“取款金额大于余额，请重新输入”

            //，如此以确保取款金额始终不大于当前余额。
            //操作结束，打印输出余额是多少。
            //最后再添加catch一般异常 Exception，使得数据类型转换的异常也能被捕获到。



        }

        private static void Task1()
        {
            Console.WriteLine("用户功能选择：1、存款，2、取款，3、退出");
            int Key = int.Parse(Console.ReadLine());
            switch (Key)
            {
                case 1:
                    Deposit();
                    break;
                case 2:
                    Take();
                    break;
                case 3:
                    Environment.Exit(0);
                    break;
                default:
                    Console.WriteLine("选择错误请重新输入!");
                    Task1();
                    break;
            }
        }

        private static void Take()
        {
            
            Console.WriteLine("=================================");
            Console.Write($"您当前金额为{sum}，请输入你要取出的金额：");
            try
            {
                b = float.Parse(Console.ReadLine());
                if (b > sum)
                {
                    throw new ArgumentOutOfRangeException("取款金额大于余额，请重新输入!");
                }
                else
                {
                    sum = sum - b;
                    Console.WriteLine($"您存入的金额为{b}，当前余额为{sum}。");
                }
            }
            catch(Exception)
            {
                throw;
            }
            finally
            {
                Console.WriteLine("=================================");
            }
            
            Task1();
        }

        private static void Deposit()
        {
            Console.WriteLine("=================================");
            Console.Write("请输入你要存入的金额：");
            a = float.Parse(Console.ReadLine());
            sum = sum + a;
            Console.WriteLine($"您存入的金额为{a}，当前余额为{sum}。");
            Console.WriteLine("=================================");
            Task1();
        }
    }
}
